#ifndef ELF_H
#define ELF_H

struct __attribute__((packed)) elf_header
{
 	uint8_t	 id[16];
 	uint16_t type;
 	uint16_t machine;
 	uint32_t version;
 	uint32_t entry;
 	uint32_t phoff;
 	uint32_t shoff;
 	uint32_t flags;
 	uint16_t size;
 	uint16_t phsize;
 	uint16_t phnum;
 	uint16_t shsize;
 	uint16_t shnum;
 	uint16_t strndx;
} __attribute__((packed));

struct elf_info_t
{
    struct elf_header * header;
};

struct elf_info_t * parse_elf(const uint32_t base);
void parse_kernel_elf(const uint32_t base);

#endif

